<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //访问器使用set来设置属性的方法，get来访问对象属性的方法
        
        // 访问器的作用：在一个对象中，如果在某种情况下，
        // 我们不希望可以通过对象点属性名的方法直接修改属性值，
        // 我们希望可以通过一次“过滤”之后
        // ，如果传入的值符合要求，才能改变对象属性的值，因此，这就是访问器的作用。
        "use strict";
        let web={
           data:{name:"唐玮",age:22},//保护起来
           set name(value){  //对象的name属性的设置方法
               if(typeof value!="string"){
                   throw new Error("姓名格式错误");
               }
               else{
                   this.data.name=value;
               }
           },
           get name(){ //对象属性name属性的访问方法
                 return this.data.name;
           },
           set age(value){
               if(typeof value!="number" || value<10 || value >100) {
                   throw new Error("年龄传入格式有问题");
               }
               else{
                   this.data.age=value;
               }
           },
           get age(){
               return this.data.age;
           }

        };
   //设置name时访问 set name(value){}方法
       web.name="小傻子";
       //访问时执行get name 方法来返回对象的属性
       console.log(web.name);

       web.age=25;
       console.log(web.age);
    </script>
</body>
</html>